﻿#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using System.Xml;

#endregion

namespace MCMLXVII.BackEnd.Services.OrganizationChart.Messages
{
    [Serializable()]
    [System.Xml.Serialization.XmlType(Namespace = "http://tempuri.org/")]
    public class msgBasicOrganizationAuditInfo
    {
        private string _OperationClass;
        public string OperationClass
        {
            get
            {
                return _OperationClass;
            }

            set
            {
                _OperationClass = value;
            }
        }

        private DateTime _OperationDate;
        public DateTime OperationDate
        {
            get
            {
                return _OperationDate;
            }

            set
            {
                _OperationDate = value;
            }
        }

        private int _OperationMemberID;
        public int OperationMemberID
        {
            get
            {
                return _OperationMemberID;
            }

            set
            {
                _OperationMemberID = value;
            }
        }

        private string _OperationMemberName;
        public string OperationMemberName
        {
            get
            {
                return _OperationMemberName;
            }

            set
            {
                _OperationMemberName = value;
            }
        }

        public msgBasicOrganizationAuditInfo()
        { }
        public msgBasicOrganizationAuditInfo(DateTime operationDate, string operationClass, int operationMemberID, string operationMemberName )
        {
            _OperationDate = operationDate;
            _OperationClass = operationClass;
            _OperationMemberID = operationMemberID;
            _OperationMemberName = operationMemberName;
        }

    }


    [Serializable()]
    [System.Xml.Serialization.XmlType(Namespace = "http://tempuri.org/")]
    public class msgOrganizationNodeAuditInfo: msgBasicOrganizationAuditInfo 
    {
        private string _Name;
        private int _NodeID;
        private int _FatherID;
        private bool _BlockInheritance;
        private int _OwnerID;
        private string _DirectoryConfigInfo;


        public msgOrganizationNodeAuditInfo():base()
        {

        }
        public msgOrganizationNodeAuditInfo(int NodeID, string Name, int FatherID, int OwnerID, bool BlockInheritance, string DirectoryConfigInfo, string operationClass, DateTime operationDate, int operationMemberID, string operationMemberName): base(operationDate, operationClass, operationMemberID, operationMemberName)
        {
            _NodeID = NodeID;
            _Name = Name;
            _FatherID = FatherID;
            _BlockInheritance = BlockInheritance;
            _OwnerID = OwnerID;
            _DirectoryConfigInfo = DirectoryConfigInfo;
        }

        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        public int NodeID
        {
            get { return _NodeID; }
            set { _NodeID = value; }
        }
        public int FatherID
        {
            get { return _FatherID; }
            set { _FatherID = value; }
        }
        public bool BlockInheritance
        {
            get { return _BlockInheritance; }
            set { _BlockInheritance = value; }
        }
        public int OwnerID
        {
            get { return _OwnerID; }
            set { _OwnerID = value; }
        }
        public string DirectoryConfigInfo
        {
            get { return _DirectoryConfigInfo; }
            set { _DirectoryConfigInfo = value; }
        }

    }


    [Serializable()]
    [System.Xml.Serialization.XmlType(Namespace = "http://tempuri.org/")]
    public class msgOrganizationMemberAuditInfo : msgBasicOrganizationAuditInfo
    {
        private string _Description;
        public string Description
        {
            get
            {
                return _Description;
            }
            set
            {
                _Description=value;
            }

        }

        private int _NodeID;
        public int NodeID
        {
            get
            {
                return _NodeID;
            }
            set
            {
                _NodeID=value;
            }

        }

        private string _Language;
        public string Language
        {
            get
            {
                return _Language;
            }
            set
            {
                _Language=value;
            }
        }

        private int _SecurityProviderID;
        public int SecurityProviderID
        {
            get
            {
                return _SecurityProviderID;
            }
            set
            {
                _SecurityProviderID=value;
            }
        }

        private string _DirectoryIdentifier;
        public string DirectoryIdentifier
        {
            get
            {
                return _DirectoryIdentifier;
            }
            set
            {
                _DirectoryIdentifier=value;
            }
        }

        private string _ClassProperties;
        public string ClassProperties
        {
            get
            {
                return _ClassProperties;
            }
            set
            {
                _ClassProperties=value;
            }
        }

        private int _RoleMemberID;
        public int RoleMemberID
        {
            get
            {
                return _RoleMemberID;
            }
            set
            {
                _RoleMemberID=value;
            }
        }


        public msgOrganizationMemberAuditInfo():base()
        {

        }
       public msgOrganizationMemberAuditInfo(string description, int nodeID, int securityProviderID, string logonName, string directoryIdentifier, string classProperties, string Language, int roleMemberID,  string operationClass, DateTime operationDate, int operationMemberID, string operationMemberName): base(operationDate, operationClass, operationMemberID, operationMemberName)
        {
            _ClassProperties = classProperties;
            _Description = description;
            _DirectoryIdentifier = directoryIdentifier;
            _Language = Language;
            _NodeID = nodeID;
            _SecurityProviderID = securityProviderID;
            _RoleMemberID = roleMemberID;

        }
    }

}
